LINQ (Language Integrated Query) হল একটি শক্তিশালী ফিচার যা C# এবং .NET ফ্রেমওয়ার্কে ডেটা অনুসন্ধান এবং প্রক্রিয়া করার জন্য ব্যবহৃত হয়। LINQ ব্যবহার করে, ডেভেলপাররা ডেটাবেস, XML, কলেকশন বা অন্য যেকোনো ডেটা সোর্স থেকে ডেটা সহজে এবং কার্যকরীভাবে প্রশ্ন করতে পারেন।
LINQ কোডে SQL-এর মতো কোড লেখার সুবিধা প্রদান করে, তবে এটি C# বা VB.NET এর মধ্যে ইনলাইন কোড হিসেবে ব্যবহৃত হয়। LINQ ব্যবহার করে, ডেটা সংগ্রহ এবং প্রক্রিয়া করার সময় টাইপ সেফ কোড লেখা সম্ভব হয়, যা কম্বাইন করা যায় অন্যান্য C# কোডের সাথে।
LINQ, C# ভাষার অংশ হিসেবে কাজ করে এবং এটি Query (অনুসন্ধান) কাজগুলোকে খুব সহজ এবং কোড লেখার সময়ই টেস্ট করতে দেয়। LINQ সাধারণত IEnumerable বা IQueryable ইন্টারফেসের সাথে কাজ করে, যা ডেটার উপর বিভিন্ন ধরনের কুয়েরি অপারেশন যেমন: Select
, Where
, OrderBy
, GroupBy
প্রভৃতি প্রয়োগ করতে সহায়তা করে।
LINQ সাধারণত দুটি পদ্ধতিতে ব্যবহার করা হয়:
এটি LINQ এর সাধারণ পদ্ধতি যেখানে আপনি method chaining এর মাধ্যমে বিভিন্ন অপারেশন একত্রে ব্যবহার করতে পারেন।
using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
// একটি sample collection
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// LINQ Method Syntax ব্যবহার করে সব সংখ্যার মধ্যে even সংখ্যা বের করা
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
Console.WriteLine("Even Numbers: ");
foreach (var number in evenNumbers)
{
Console.WriteLine(number);
}
}
}
এখানে Where
মেথডটি numbers
কলেকশনের মধ্যে এমন সংখ্যাগুলো বের করে যেগুলি even (যা ২ দিয়ে বিভাজ্য)। ToList()
মেথডটি এটি একটি List এ রূপান্তরিত করে।
Query Syntax প্রায় SQL এর মতো লাগে এবং এটি LINQ-এর একটি declarative শৈলী। LINQ Query Syntax C#-এ ডেটা অনুসন্ধানের জন্য একটি SQL-এর মতো স্টাইল তৈরি করে।
using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
// একটি sample collection
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// LINQ Query Syntax ব্যবহার করে সব সংখ্যার মধ্যে even সংখ্যা বের করা
var evenNumbers = from n in numbers
where n % 2 == 0
select n;
Console.WriteLine("Even Numbers: ");
foreach (var number in evenNumbers)
{
Console.WriteLine(number);
}
}
}
এখানে from
, where
, এবং select
কীওয়ার্ডগুলোর মাধ্যমে SQL-এর মতো স্টাইলের কোড ব্যবহার করা হয়েছে।
LINQ-কে ডেটাবেসের সাথে ইন্টিগ্রেট করাও সম্ভব, এবং এটি খুবই শক্তিশালী। LINQ-to-SQL এবং LINQ-to-Entities ব্যবহারের মাধ্যমে আপনি SQL কোডের মতো LINQ কোড লিখে ডেটাবেসের সাথে কাজ করতে পারেন।
using System;
using System.Linq;
public class Program
{
public static void Main()
{
using (var context = new MyDatabaseContext())
{
// LINQ-to-SQL ব্যবহার করে ডেটাবেসের সকল records নিয়ে আসা
var query = from p in context.Products
where p.Price > 100
select p;
foreach (var product in query)
{
Console.WriteLine($"Product Name: {product.Name}, Price: {product.Price}");
}
}
}
}
এখানে MyDatabaseContext
একটি Entity Framework DbContext যা ডেটাবেসের সাথে সংযুক্ত। LINQ কোড ডেটাবেস থেকে Products টেবিলের সব রেকর্ড বের করে, যেখানে পণ্যের মূল্য ১০০-এর বেশি।
Where: নির্দিষ্ট শর্তের উপর ভিত্তি করে ডেটা ফিল্টার করতে ব্যবহৃত হয়।
var result = numbers.Where(n => n > 5);
Select: ডেটার একটি নির্দিষ্ট অংশ নির্বাচন করতে ব্যবহৃত হয়।
var names = people.Select(p => p.Name);
OrderBy: ডেটাকে একটি নির্দিষ্ট অর্ডারে সাজাতে ব্যবহৃত হয়।
var orderedNumbers = numbers.OrderBy(n => n);
GroupBy: ডেটাকে গ্রুপ করতে ব্যবহৃত হয়।
var groupedNumbers = numbers.GroupBy(n => n % 2 == 0);
Join: দুটি ডেটাসেটের মধ্যে যোগ করতে ব্যবহৃত হয়।
var result = from order in orders
join product in products on order.ProductId equals product.Id
select new { order.OrderId, product.Name };
LINQ-এর সাহায্যে আপনি আপনার অ্যাপ্লিকেশনটির ডেটা প্রক্রিয়াকরণ আরও কার্যকরী, সহজ এবং দ্রুত করতে পারবেন।
Read more